﻿$(function($) {

    $("#comit").off().on("click", function() {
        var data = $("#component_base").data("rowData");
        if (data) {
            var value = JSON.stringify(data);
            alert(value);
        }

    });

    $("#export").off().on("click", function() {



    });
    //表格显示需要的数据  *Type 为显示dropdownlist需要的数据
    var gridProperty = {
        displayFields:[],
        component_base: {
            datafields: [],
            columns: [],
            ClusterType: [],
            AVCTargetType: [],
            AGCTargetType: []
        }
    };
    $("#comit").off().on("click", function() {
        var data = $("#component_base").data("rowData");
        if (data) {
            var value = JSON.stringify(data);
            alert(value);
        }

    });

    $("#export").off().on("click", function() {



    });

    initToolBar();

    initGridFields("component_base");
    //////////////////////////////////////////////////////
    //
    //   工具栏添加删除按钮 功能实现
    //////////////////////////////////////////////////////
    function initToolBar() {
        var toolAction = {
            tool_add: function() {
                //

                var currentTable = "#component_base";
                var eqpid = $.config.EqpId.get();
                var commit = $(currentTable).jqxGrid('addrow', null, {
                    "EqptId": eqpid
                });

                if (!$(currentTable).data("rowData")) {
                    $(currentTable).data("rowData", {});
                }
                var items = $(currentTable).data("rowData");
                var item = items[eqpid]; //全局ID产生器
                //如果之前有对改时间的删除项，则修改为更新项。
                if (item) {
                    item.handle = 'update';
                } else {
                    //否则，新建插入项
                    item = {};
                    item.handle = 'insert';

                }
                item.val = {};

                items[eqpid] = item;
                $(currentTable).data("rowData", items);



            },
            tool_delete: function() {
                table = $("#component_base");
                //设置为 'singlecell', 'multiplecells' or 'multiplecellsextended' 需要使用getselectedcell 方法
                // var cell = table.jqxGrid('getselectedcell');
                // var selectedrowindex = cell.rowindex;
                var selectedrowindex = table.jqxGrid('getselectedrowindex');
                var rowscount = table.jqxGrid('getdatainformation').rowscount;
                if (selectedrowindex >= 0 && selectedrowindex < rowscount) {
                    var id = table.jqxGrid('getrowid', selectedrowindex);

                    //var row = table.jqxGrid('getrowdata', id);
                    //alert(data.firstname + " " + data.lastname);

                    if (!table.data("rowData")) {
                        table.data("rowData", {});
                    }
                    var items = table.data("rowData");
                    var item = items[id]
                    if (item) {
                        //更新的，标识为删除。
                        //添加的，直接删除
                        if (item.handle == 'update') {
                            item.handle = 'delete';
                        } else {
                            delete items[id];

                        }
                    } else {
                        //没有该项，添加，并标识为删除
                        item = {};
                        item.handle = 'delete';
                        items[id] = item;
                    }

                    $.config.EqpId.remove(id);

                    table.data("rowData", items);

                    var commit = table.jqxGrid('deleterow', id);

                }
            }
        };
        $(".tool_btn").on("click", function() {

            toolAction[$(this).attr("id")]();
        });


    }






    //////////////////////////////////////////////////////////////
    //
    //加载配置文件，并形成界面
    //////////////////////////////////////////////////////////////
    function initGridFields(tableid) {



        var url = "table_xml/component/EquipmentType.xml";
        // prepare the data
        var source = tableSource(url);
        var ss = {};
        //加载配置文件
        var dataAdapter = new $.jqx.dataAdapter(source, {
            autoBind: true,
            loadComplete: function() {
                // get data records.

                var records = dataAdapter.records;
                console.dir(records);

                var length = records.length;
                for (var i = 0; i < length; i++) {
                    var record = records[i];
                    var fields = {};
                    fields["name"] = record.Field;
                    gridProperty.displayFields.push();
                    gridProperty[tableid].datafields.push(fields);

                    var column = {};
                    column["datafield"] = record.Field;
                    column["text"] = record.Desc;
                    //进程名称不可编辑
                    if (record.Field == "EqptId")
                        column["editable"] = false;

                    
                    gridProperty[tableid].columns.push(column);
                }

                //================== 表格初始话数据加载完成了之后才初始化 tab，然后在tab的init中初始化表格

                initGrid(tableid);
            }
        });
        //dataAdapter.dataBind();

    }

    /////////////////////////////////////////////////////////////
    //  系统进程编辑表格
    //
    /////////////////////////////////////////////////////////////
    function initGrid(tableid) {

        var source = {
            datatype: "csv",
            datafields: gridProperty[tableid].datafields,
            url: 'defaultData/component/cluster.csv',
            id: "EqptId" //关联设备ID到
        };

        var dataAdapter = new $.jqx.dataAdapter(source, {
            async: false,
            loadError: function(xhr, status, error) {
                //  alert('Error loading "' + source.url + '" : ' + error);
            }
        });

        var table = $("#" + tableid).jqxGrid({
            width: '99.5%',
            height: '585',
            theme: theme,
            editable: true,
            altrows: true,
            source: dataAdapter,
            //  selectionmode : 'singlecell', //设置选择方式
            columns: gridProperty[tableid].columns
        }).on('cellvaluechanged', function(event) {

            var field = args.datafield;
            var rowindex = args.rowindex;
            var value = args.newvalue;
            if (!value)
                return;

            var row = table.jqxGrid('getrowdata', rowindex);
            var oldvalue = args.oldvalue;
            //设置变化值到缓存中
            if (!$(this).data("rowData"))
                $(this).data("rowData", {});
            var rowData = $(this).data("rowData");
            var item = rowData[row.uid];
            if (item) {
                //更新的，直接更新数据，更新对应字段的数据。
                //添加的 ，不更新操作，直接更新数据。
                //删除的，提示删除一条已经备删除的记录。
                if (item.handle == 'delete') {
                    console.warn("错误，更新一条需要删除的记录");
                } else {
                    item.val[field] = value;
                }
            } else {
                //没有就创建一条更新的数据
                item = {};
                item.handle = 'update';
                item.val = {};
                item.val[field] = value;
            }

            rowData[row.uid] = item; //更新到rowdata

            $(this).data("rowData", rowData);



        });


        return table;
    };

});